package cn.iocoder.yudao.module.trade.dal.mysql.giftcard;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.module.trade.controller.admin.giftcard.vo.WxCardPageReqVO;
import cn.iocoder.yudao.module.trade.dal.dataobject.giftcard.GiftWxCardDO;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

@Mapper
public interface GiftWxCardMapper extends BaseMapperX<GiftWxCardDO> {

    default List<GiftWxCardDO> selectGiftWxCardOrderByCreateTime() {
        return selectList(new LambdaUpdateWrapper<GiftWxCardDO>()
                .eq(GiftWxCardDO::getDeleted, 0)
                .orderByDesc(GiftWxCardDO::getCreateTime));
    }

    default GiftWxCardDO selectByCardId(String cardId) {
        return selectOne(GiftWxCardDO::getCardId, cardId);
    }

    default PageResult<GiftWxCardDO> selectPage(WxCardPageReqVO reqVO) {
        return selectPage(reqVO, new LambdaQueryWrapperX<GiftWxCardDO>()
                .eqIfPresent(GiftWxCardDO::getCardId, reqVO.getCardId())
                .eqIfPresent(GiftWxCardDO::getBrandName, reqVO.getBrandName())
                .likeIfPresent(GiftWxCardDO::getBlessings, reqVO.getBlessings())
                .orderByDesc(GiftWxCardDO::getId));
    }

}
